// overload di ()

#include <iostream>
using namespace std;

class loc {
	int longitude, latitude;
public:
	loc() {}
	loc(int lg, int lt) {
		longitude = lg;
		latitude = lt;
	}

	void show() {
		cout << longitude << "  ";
		cout << latitude << "\n";
	}

	loc operator+(loc op2);

	loc operator()(int i, int j);
};

// Overloading di () per loc

loc loc::operator()(int i, int j)
{
	longitude = i;
	latitude = j;

	return *this;
}


// Overloading di + per loc
loc loc::operator+(loc op2)
{
	loc temp;

	temp.longitude = op2.longitude + longitude;
	temp.latitude = op2.latitude + latitude;

	return temp;
}


int main()
{
	loc ob1(10, 20), ob2(1,1);

	ob1.show();
	ob1(7,8); // puo' essere utilizzata da sola ...
	ob1.show();

	ob1 = ob2 + ob1(10,10); // ... o all'interno di espressioni
	ob1.show(); 

	return 0;
}

/*
10  20
7  8
11  11
Press any key to continue
*/

